package com.checkoutcheckins.client.services;

import java.io.IOException;

import com.checkoutcheckins.client.data.foursquare.FoursquareException;
import com.checkoutcheckins.client.data.foursquare.FoursquareUser;
import com.checkoutcheckins.client.data.foursquare.Settings;
import com.checkoutcheckins.client.rpc.CheckinResponse;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("retrival")
public interface FoursquareService extends RemoteService {

	public FoursquareUser getFoursquareUser(String foursquareToken,
			String foursquareSecret) throws IOException, FoursquareException;

	public CheckinResponse getCheckinsFromDatabase(String foursquareId,
			int lastRetrieved) throws FoursquareException, IOException;

	public CheckinResponse getCheckinsFromFoursquare(String foursquareId)
			throws FoursquareException, IOException;

	public CheckinResponse getFriendsCheckinsFromFoursquare(String foursquareId)
			throws FoursquareException, IOException;

	public Boolean sendShoutMessageToFoursquare(String foursquareId, String message,
			boolean twitter, boolean facebook) throws FoursquareException, IOException;

	public Settings getUserSettings(String foursquareId);

	boolean isWordSpreadAsked(String foursquareId, boolean wordSpreadAsked);
}
